<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>员工管理系统登录</title>
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <meta http-equiv="Access-Control-Allow-Origin" content="*">
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
    <meta name="apple-mobile-web-app-status-bar-style" content="black">
    <meta name="apple-mobile-web-app-capable" content="yes">
    <meta name="format-detection" content="telephone=no">
    <link rel="icon" th:href="@{images/favicon.ico}">
    <link rel="stylesheet" th:href="@{/layui/css/layui.css}" media="all">

    <style>
        html, body {
            width: 100%;
            height: 100%;
            overflow: hidden
        }

        body {
            background: #1E9FFF;
        }

        body:after {
            content: '';
            background-repeat: no-repeat;
            background-size: cover;
            -webkit-filter: blur(3px);
            -moz-filter: blur(3px);
            -o-filter: blur(3px);
            -ms-filter: blur(3px);
            filter: blur(3px);
            position: absolute;
            top: 0;
            left: 0;
            right: 0;
            bottom: 0;
            z-index: -1;
        }

        .layui-container {
            width: 100%;
            height: 100%;
            overflow: hidden
        }

        .admin-login-background {
            width: 360px;
            height: 300px;
            position: absolute;
            left: 50%;
            top: 40%;
            margin-left: -180px;
            margin-top: -100px;
        }

        .logo-title {
            text-align: center;
            letter-spacing: 2px;
            padding: 14px 0;
        }

        .logo-title h1 {
            color: #1E9FFF;
            font-size: 25px;
            font-weight: bold;
        }

        .login-form {
            background-color: #fff;
            border: 1px solid #fff;
            border-radius: 3px;
            padding: 14px 20px;
            box-shadow: 0 0 8px #eeeeee;
        }

        .login-form .layui-form-item {
            position: relative;
        }

        .login-form .layui-form-item label {
            position: absolute;
            left: 1px;
            top: 1px;
            width: 38px;
            line-height: 36px;
            text-align: center;
            color: #d2d2d2;
        }

        .login-form .layui-form-item input {
            padding-left: 36px;
        }

        .captcha {
            width: 60%;
            display: inline-block;
        }

        .captcha-img {
            display: inline-block;
            width: 34%;
            float: right;
        }

        .captcha-img img {
            height: 34px;
            border: 1px solid #e6e6e6;
            height: 36px;
            width: 98%;
        }

        #captcha {
            cursor: pointer;
        }

        .forgotPwd {
            color: blue;
            position: absolute;
            top: 10px;
            right: 0;
            font-size: 12px;
        }

        .toRegister {
            color: blue;
            font-size: 12px;
        }

        tip {
            margin-top: 10px;
            line-height: 10px;
            font-size: 10px;
        }
    </style>
</head>
<body>
<div class="layui-container">
    <div class="admin-login-background">
        <div class="layui-form login-form">
            <form class="layui-form" action="" id="myForm">
                <div class="layui-form-item logo-title">
                    <h1>员工管理系统登录</h1>
                </div>
                <div class="layui-form-item">
                    <label class="layui-icon layui-icon-username" for="username"></label>
                    <input type="text" id="username" name="username" lay-verify="required|account"
                           placeholder="请输入账号"
                           th:value="${session.username}" autocomplete="off" class="layui-input">
                </div>
                <div class="layui-form-item">
                    <label class="layui-icon layui-icon-password" for="password"></label>
                    <input type="password" th:value="${session.password}" id="password" name="password"
                           lay-verify="required|password"
                           placeholder="请输入密码"
                           autocomplete="off" class="layui-input">
                </div>
                <div class="layui-form-item">
                    <label class="layui-icon layui-icon-vercode" for="captcha"></label>
                    <input type="text" name="captcha" lay-verify="captcha" placeholder="图形验证码" autocomplete="off"
                           class="layui-input verification captcha">
                    <div class="captcha-img">
                        <img th:src="@{/captcha}" id="captcha"/>
                    </div>
                </div>
                <div class="layui-form-item">
                    <input type="checkbox" id="remember" name="rememberMe" th:checked="${session.rememberMe}"
                           value="true" lay-skin="primary" title="记住密码">
                    <div><a th:href="@{/findPwd}" class="forgotPwd">忘记密码？</a></div>
                </div>
                <div class="layui-form-item">
                    <button id="btn-login" class="layui-btn layui-btn layui-btn-normal layui-btn-fluid" lay-submit=""
                            lay-filter="login">登 录
                    </button>
                </div>
            </form>
            <div><a class="toRegister" th:href="@{/to/register}">没有账号？点我注册</a></div>
        </div>
    </div>
</div>
<script th:src="@{/webjars/jquery/3.5.1/jquery.min.js}" charset="utf-8"></script>
<script th:src="@{/layui/layui.js}" charset="utf-8"></script>
<script th:src="@{/lib/jq-module/jquery.particleground.min.js}" charset="utf-8"></script>
<script th:inline="javascript">
    // 获取前面的路径
    var ctxPath = [[@{/}]];
        // alert(ctxPath);// /ctc/
        //验证码
        $("#captcha").click(function () {
            // alert("1")
            $("#captcha").attr("src", ctxPath + 'captcha?date=' + new Date().getTime());
        });


    layui.use(['form'], function () {
        var form = layui.form,
            layer = layui.layer;

        // 登录过期的时候，跳出ifram框架
        if (top.location != self.location) top.location = self.location;

        // 粒子线条背景
        $(document).ready(function () {
            $('.layui-container').particleground({
                dotColor: '#7ec7fd',
                lineColor: '#7ec7fd'
            });
        });


        var i = 5;
        var maxTime = 60 * 10; //开始锁定十分钟
        // 进行登录操作
        form.on('submit(login)', function (data) {
            //点击登录按钮后禁用
            $("#btn-login").attr("disabled", "disabled").addClass("layui-btn-disabled");
            data = data.field;
            if (data.username == '') {
                layer.msg('用户名不能为空');
                return false;
            }
            if (data.password == '') {
                layer.msg('密码不能为空');
                return false;
            }
            if (data.captcha == '') {
                layer.msg('验证码不能为空');
                //点击登录按钮失败后取消禁用
                $("#btn-login").removeAttr("disabled", "disabled").removeClass("layui-btn-disabled");
                return false;
            }
            var remember = document.getElementById("remember");
            if (remember.checked != true) {
                data.rememberMe = false;
            }
            //异步登录请求
            var url = ctxPath + "user/login";
            $.post(url, data, function (response) {
                console.log(response);
                if (response.code == 0) {
                    //登录成功
                    layer.msg(response.message, {icon: 6, time: 2000}, function () {
                        window.location = ctxPath + 'index';
                    });
                } else {
                    //登录失败 i-1
                    i--;
                    //点击登录按钮失败后取消禁用
                    $("#btn-login").removeAttr("disabled", "disabled").removeClass("layui-btn-disabled");
                    layer.alert(response.message, {icon: 5, anim: 6});
                    //换一张验证码
                    $("#captcha").attr("src", ctxPath + 'captcha?date=' + new Date().getTime());
                    console.log(i);

                    //多次登录失败锁定
                    if (i < 0) {
                        layer.msg("您频繁登录错误，该账号已被锁定", {icon: 5, anim: 6, time: 1500});
                        $("#btn-login").attr("disabled", "disabled").addClass("layui-btn-disabled");
                        var dv = document.getElementById("btn-login");

                        function jia(a) {
                            if (a < 10)
                                return "0" + a;
                            else
                                return a;
                        }

                        var last = function () {
                            var minutes = Math.floor(maxTime / 60); //怎么说呢  假如(60*10-1)s 正常应该就是的 9.983333  取整就是 9
                            var seconds = maxTime % 60;   //余数指定是个整数
                            seconds = jia(seconds);
                            var mes = "还剩下 " + minutes + " 分 " + seconds + " 秒";
                            dv.innerHTML = mes;
                            maxTime--;
                            if (maxTime <= 0) {
                                i = 2;
                                maxTime = 30 * 60;//第二次之后锁定半小时
                                clearInterval(interval);//关闭定时器
                                // clearInterval(timeId);
                                dv.innerHTML = '登 录';
                                $("#btn-login").removeAttr("disabled", "disabled").removeClass("layui-btn-disabled");
                                return;
                            }
                        };
                        var interval = setInterval(function () {
                            last();
                        }, 1000);
                    }
                    ;
                }
            });
            return false;
        });

    });
</script>
</body>
</html>